package com.qf.service.impl;

import com.qf.entity.City;
import com.qf.mapper.CityMapper;
import com.qf.service.ICtiyService;
import com.qf.util.PinyinUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
public class CityServiceImpl implements ICtiyService {

    //@Resource 和 @Autowired的区别
    //@Resource 根据名称注入、如果没有就根据类型
    //@Autowired 根据类型注入
    @Autowired
    private CityMapper cityMapper;

    /**
     * 查询城市列表
     * @return
     */
    @Override
    @Transactional(readOnly = true)
    public List<City> list() {
        return cityMapper.selectList(null);
    }

    /**
     * 添加城市
     * @param city
     * @return
     */
    @Override
    @Transactional
    public int insert(City city) {

        //通过城市的名称，生成城市的拼音
        city.setCityPinyin(PinyinUtil.str2Pinyin(city.getCityName()));

        return cityMapper.insert(city);
    }

    /**
     * 修改城市的酒店数量
     *
     * id为cid的城市，酒店数量增加number
     *
     * 思考：这个方法的逻辑有没有问题？
     *
     *
     * @param cid
     * @param number
     * @return
     */
    @Override
    @Transactional
    public int updateHotalNumber(Integer cid, Integer number) {
        return cityMapper.updateHotalNumber(cid, number);
    }
}
